package ${baseInfo.basePackage}.${baseInfo.moduleName}.model;

import java.math.BigDecimal;
import com.ccp.dev.qbdms.expimp.annotation.ExpAnnotation;
import com.ccp.dev.qbdms.expimp.annotation.FlowSubject;
import com.ccp.dev.qbdms.expimp.annotation.ImpAnnotation;
import com.ccp.dev.qbdms.expimp.annotation.Record;
import java.util.Date;
<#list baseInfo.columns as column>
    <#if column.attrType??>
    <#if column.attrType=="BigDecimal">
import java.math.BigDecimal;
    </#if>
    <#break>
    </#if>
</#list>

/**
 * ${baseInfo.tableComment}表 ${baseInfo.tableName}
 * 
 * @author ${baseInfo.author}
 * @date ${baseInfo.datetime}
 */
@ImpAnnotation(description = "${baseInfo.tableComment}")
@ExpAnnotation(description = "${baseInfo.tableComment}")
@FlowSubject(subjectName = "${baseInfo.tableComment}")
public class ${baseInfo.classForClassName} extends BaseBusinessModel<${baseInfo.classForClassName}> {
    private static final long serialVersionUID = 1L;

<#list baseInfo.columns as column>
    <#if column.attrNameForProperty != "createBy"
    && column.attrNameForProperty != "createTime"
    && column.attrNameForProperty != "updateBy"
    && column.attrNameForProperty != "updateTime"
    && column.attrNameForProperty != "tenantId"
    && column.attrNameForProperty != "report_status"
    && column.attrNameForProperty != "report_status_temp"
    && column.attrNameForProperty != "secret"
    && column.attrNameForProperty != "fillman"
    && column.attrNameForProperty != "fillmanaccount"
    && column.attrNameForProperty != "filldept"
    && column.attrNameForProperty != "filldeptid"
    && column.attrNameForProperty != "filldate"
    && column.attrNameForProperty != "filldepthospital"
    && column.attrNameForProperty != "filldepthospitalid"
    && column.attrNameForProperty != "report_date"
    && column.attrNameForProperty != "report_reason"
    && column.attrNameForProperty != "returnmsg"
    && column.attrNameForProperty != "belongdeptname"
    >
    /**
     * ${column.columnComment!}
    */
    @Record("${column.columnComment!}")
    @ImpAnnotation(description = "${column.columnComment!}")
    @ExpAnnotation(description = "${column.columnComment!}")
    private ${column.attrType}  ${column.attrNameForProperty};
    </#if>
</#list>
<#if selectFlow?? && selectFlow != "">
    private String runId;
</#if>

<#list baseInfo.columns as column>
    <#if column.attrNameForProperty != "createBy"
    && column.attrNameForProperty != "createTime"
    && column.attrNameForProperty != "updateBy"
    && column.attrNameForProperty != "updateTime"
    && column.attrNameForProperty != "tenantId"
    && column.attrNameForProperty != "report_status"
    && column.attrNameForProperty != "report_status_temp"
    && column.attrNameForProperty != "secret"
    && column.attrNameForProperty != "fillman"
    && column.attrNameForProperty != "fillmanaccount"
    && column.attrNameForProperty != "filldept"
    && column.attrNameForProperty != "filldeptid"
    && column.attrNameForProperty != "filldate"
    && column.attrNameForProperty != "filldepthospital"
    && column.attrNameForProperty != "filldepthospitalid"
    && column.attrNameForProperty != "report_date"
    && column.attrNameForProperty != "report_reason"
    && column.attrNameForProperty != "returnmsg"
    && column.attrNameForProperty != "belongdeptname"
    >
    public ${column.attrType} get${column.attrNameForMethod}() {
        return this.${column.attrNameForProperty};
    }
    public void set${column.attrNameForMethod}(${column.attrType} ${column.attrNameForProperty}) {
        this.${column.attrNameForProperty} = ${column.attrNameForProperty};
    }
    </#if>
</#list>
<#if selectFlow?? && selectFlow != "">
    public String getRunId(){
        return this.runId;
    }
    public void setRunId(String runId){
        this.runId = runId;
    }
</#if>

    @Override
    public String toString() {
        return "${baseInfo.classForClassName}{" +
            <#list baseInfo.columns as column>
                <#if column.attrNameForProperty != "createBy"
                && column.attrNameForProperty != "createTime"
                && column.attrNameForProperty != "updateBy"
                && column.attrNameForProperty != "updateTime"
                && column.attrNameForProperty != "tenantId"
                && column.attrNameForProperty != "report_status"
                && column.attrNameForProperty != "report_status_temp"
                && column.attrNameForProperty != "secret"
                && column.attrNameForProperty != "fillman"
                && column.attrNameForProperty != "fillmanaccount"
                && column.attrNameForProperty != "filldept"
                && column.attrNameForProperty != "filldeptid"
                && column.attrNameForProperty != "filldate"
                && column.attrNameForProperty != "filldepthospital"
                && column.attrNameForProperty != "filldepthospitalid"
                && column.attrNameForProperty != "report_date"
                && column.attrNameForProperty != "report_reason"
                && column.attrNameForProperty != "returnmsg"
                && column.attrNameForProperty != "belongdeptname"
                >
                <#if !column_has_next>
                "${column.attrNameForProperty}='" + ${column.attrNameForProperty} + "'" +
                <#else>
                "${column.attrNameForProperty}='" + ${column.attrNameForProperty} + "'," +
                </#if>
                </#if>
            </#list>
                '}';
    }

}
